package com.tudouji.project.farepay.service;

import com.tudouji.framework.web.domain.AjaxResult;
import com.tudouji.project.farepay.domain.FarepayApply;

import java.math.BigDecimal;
import java.util.List;

/**
 * 物流运费付款申请Service接口
 *
 * @author tudouji
 * @date 2021-10-27
 */
public interface IFarepayApplyService
{
    /**
     * 查询物流运费付款申请
     *
     * @param guid 物流运费付款申请ID
     * @return 物流运费付款申请
     */
    public FarepayApply selectFarepayApplyById(String guid);

    /**
     * 查询物流运费付款申请列表
     *
     * @param farepayApply 物流运费付款申请
     * @return 物流运费付款申请集合
     */
    public List<FarepayApply> selectFarepayApplyList(FarepayApply farepayApply, String status, String functionType);
    public BigDecimal selectFarepayApplyListAmount(FarepayApply farepayApply, String status, String functionType);

    /**
     * 新增物流运费付款申请
     *
     * @param farepayApply 物流运费付款申请
     * @return 结果
     */
    public AjaxResult insertFarepayApply(FarepayApply farepayApply);

    /**
     * 修改物流运费付款申请
     *
     * @param farepayApply 物流运费付款申请
     * @return 结果
     */
    public int updateFarepayApply(FarepayApply farepayApply);

    /**
     * 批量删除物流运费付款申请
     *
     * @param guids 需要删除的物流运费付款申请ID
     * @return 结果
     */
    public int deleteFarepayApplyByIds(String[] guids);

    /**
     * 删除物流运费付款申请信息
     *
     * @param guid 物流运费付款申请ID
     * @return 结果
     */
    public int deleteFarepayApplyById(String guid);

    AjaxResult save(Long entity, String fileIds, Long taskid, String opinion);

    AjaxResult approval(Long id, Long taskid, String opinion, String fileIds);

    AjaxResult pay(Long id, Long taskid, String opinion, String fileIds);

    AjaxResult refuse(Long id, String fileIds, String opinion, Long taskid, Long refuseNodeid, Long backUserid);

    AjaxResult del(Long id);
}
